/*! \file Bounds2.h
 *	\brief <write description for Bounds2.h>
 *
 *	created:	2010/03/11
 *	created:	11:3:2010   22:26
 *	filename: 	c:\src\tactics-engine\libs\math\Bounds2.h
 *	file path:	c:\src\tactics-engine\libs\math
 *	file base:	Bounds2
 *	file ext:	h
 *	author:		Vitalii Trubchaninov
 *				venngraydog@gmail.com
 */

#ifndef _MATH_BOUNDS2_H_
#define _MATH_BOUNDS2_H_

#pragma once

#include "Vector2.h"

namespace tt{
namespace math{

template<typename T>
class Bounds2
{
public:
	typedef T Value;
	typedef Vector2<Value> Point;

public:
	Bounds2();
	Bounds2(Value min_x, Value min_y, Value max_x, Value max_y);
	Bounds2(const Point& _min, const Point& _max);

	Point size() const;

public:
	Point min;
	Point max;
};

typedef Bounds2<Int> Bounds2I;
typedef Bounds2<Float> Bounds2F;

} //namespace math
} //namespace tt
#include "Bounds2.inl"

#endif //_MATH_BOUNDS2_H_